Configurator software is used in a variety of contexts to configure a wide variety of articles for purposes of buying, building, selling, etc. One example of an application for configurator software is the consumer online retail purchasing of multi-feature articles such as personal computers. The following illustration is directed personal computers, but is similarly applicable to configurator operations relating to other types of articles.
Some online retailers of personal computers provide consumers with network access to configurator software to assist or guide the consumer in specifying the features and components of a computer to be purchased. The configurator software provides the consumer with feature and component choices and identifies the selections made. Upon completion of the purchase, the feature and component selections made by the consumer are used by the retailer to obtain from stock or assemble the computer as specified.
The configurator software has two functions: first to guide the configuring user (e.g., personal computer consumer) through the features and components that are available for an article, and second to pass the specified features and components (i.e., configuration) on for completion.
Configurator software can be of great utility for both the configuring users and the entities (e.g., businesses) that are providing articles that are specified by the users. A disadvantage of configurator software, however, is that it is typically very complex and difficult to create. In addition to basic user interface tools, a programmer typically creates dedicated software that specifies the features and components available for selection by the configuring user. The programmer typically must also create dedicated software for correlating the features and components available for selection by the configuring user with a database of actual articles and components. Due to these complexities and difficulties, conventional dedicated configurator software is expensive to create and expensive to maintain as article features and components change.
Accordingly, an aspect of the present invention is a generalized configurator software system that provides separate building and executing of software-based configuration definitions from which any of a wide variety of articles may be specified or configured. For example, the configuration definitions may relate to various features or components that may be selected for or incorporated into or used to select or specify any type of article, including a personal computer, an automobile, a construction project (e.g., a bathroom remodel or a multistory structure), etc.
The configuration definitions of the generalized configurator software system are stored in a definitions database and are built or constructed by a set-up user from a generalized configurator data structure or framework that may include any or all of variables, items, formulas, and assemblies. The variables, items, formulas, and assemblies are specified to represent the generic features or components that may be selected for one or more articles, and also include operating logic for selecting specific ones of the features or components. Accordingly, the configuration definitions define the basis on which a configuring user can select, specify, or “configure” any of one or more articles.
The configuration definitions form a generalized object repository that encompasses all possible characteristics, features, and components of the available articles, thereby providing a generic standardized representation of those articles. A logic engine executes logic associated with the configuration definitions to provide an article configurator for assisting a configuring user in selecting, specifying, or configuring an article. The logic engine obtains information (e.g., user inputs) from the configuring user and identifies specified generic properties of the article specified by the configuring user. The specified generic properties specified by the configuring user are then correlated with specific article properties stored in a component catalog database to identify one or more actual articles that meet, or most closely meet, the generic properties specified by the configuring user.
The present invention provides a generalized framework that can be adapted by a set-up user to specify or configure any type of article. In contrast, conventional configuration tools are built specifically for a particular application or type of article and fixedly relate the various features or components to be specified. A conventional configuration tool does not include a generalized framework that can be adapted by a set-up user to specify or configure any type of article. As a result, the generalized configurator software system of this invention can simplify and standardize the creation of configurator software, thereby reducing its cost and increasing its availability.
Additional objects and advantages of the present invention will be apparent from the detailed description of the preferred embodiment thereof, which proceeds with reference to the accompanying drawings.